package condominio.negocio;

import java.util.ArrayList;
import java.util.Collection;

import condominio.dao.CuotaDAO;
import condominio.dao.CuotaViviendaDAO;
import condominio.dao.ResidenteDAO;
import condominio.dao.ViviendaDAO;
import condominio.excepcion.DAOExcepcion;
import condominio.modelo.Cuota;
import condominio.modelo.CuotaVivienda;
import condominio.modelo.Residente;
import condominio.modelo.Vivienda;

public class CuotaViviendaNegocio {

	CuotaViviendaDAO oCVDAO= new CuotaViviendaDAO();
	
	public int registrarCuotaVivienda(int coVivienda, String Anio, String Mes) throws DAOExcepcion {
		
		int flInsert = 0;
	//	ResidenteDAO oResDAO = new ResidenteDAO();
		//Residente oResidente= oResDAO.findCoResidente(coResidente);
		//Residente oResidente= oResDAO.findResidenteVivienda(coVivienda);
		ViviendaDAO daoVivienda=new ViviendaDAO();
		Vivienda oVivienda=daoVivienda.findVivienda(coVivienda);
		
		CuotaDAO oCuoDAO=new CuotaDAO();
		Cuota oCuota=oCuoDAO.obtener(Anio, Mes);
		
		CuotaVivienda oCuoViv=new CuotaVivienda();
		
//		oCuoViv.setResidente(oResidente);
		oCuoViv.setoVivienda(oVivienda);
		oCuoViv.setCuota(oCuota);
		oCuoViv.setEstado("0");
		oCuoViv.setTipoPago("");

		try {
			
			flInsert = oCVDAO.registrarCuotaVivienda(oCuoViv);
			
		} catch (DAOExcepcion e) {
			throw e;
		}
		return flInsert;

	}

	public void pagarCuotaVivienda(int coResidente, String Anio, String Mes, String flEstado,
			String tipoPago) throws DAOExcepcion {

		ResidenteDAO oResDAO = new ResidenteDAO();
		Residente oVivienda = oResDAO.findCoResidente(coResidente);
		
		CuotaDAO oCuoDAO=new CuotaDAO();
		Cuota oCuota=oCuoDAO.obtener(Anio, Mes);
		
		CuotaVivienda oCuoViv=new CuotaVivienda();
		
		oCuoViv.setResidente(oVivienda);
		oCuoViv.setCuota(oCuota);
		oCuoViv.setEstado(flEstado);
		oCuoViv.setTipoPago(tipoPago);

		try {
			oCVDAO.pagarCuotaVivienda(oCuoViv);

		} catch (DAOExcepcion e) {
			throw e;
		}

	}

	public Collection<CuotaVivienda> listMorosos() throws DAOExcepcion {
		Collection<CuotaVivienda> oLista = new ArrayList<CuotaVivienda>();
		CuotaViviendaDAO oCuotaViviendaDAO = new CuotaViviendaDAO();
		oLista = oCuotaViviendaDAO.listarCuotasVencidas();
		return oLista;
	}
	
	
}
